In traditional client/server computing environments, data items along with their identifiers are transmitted within data streams between computers in respective data packets in one of two ways:
data items are given a fixed length within a data packet according to the maximum required length of a data item. A receiving computer can search for specific data items by searching for their identifiers in the data stream by jumping the known length of a data packet to the identifier in the next data packet; or PA1 data items are allocated a length sufficient to store the data, and this length variable is stored in another location with a data packet. The receiving computer needs to read the length variable to determine how far to jump to the next identifier location in the data stream.
Clearly, the first method while computationally more simple will require excess bandwidth to transfer redundant information. The second method while computationally more complex requires less bandwidth. Even with the second method, the length variable must be allocated a length sufficiently long enough to define the length of the longest data item. This is turn can be wasteful if data types can vary between long strings or simple integers. Neither method takes into account that identifier lengths can also vary and using a fixed field length for the identifier again requires excess bandwidth.
The present invention defines a simple compact "free format" layout for data items sent over a network, keeping the number of bytes used to a minimum, independent of compression techniques.